/**
 * Copyright (C) 2012 The SkyTvOS Project
 *
 * Version     Date           Author
 * ─────────────────────────────────────
 *           2015-12-16         yellowlgx
 *
 */

package com.skyworth.ui.newlistview;

import java.util.List;

/**
 * @ClassName IAdapter
 * @Description 通用的adapter必须实现的接口
 * @author yellowlgx
 * @date 2015-12-16
 */
public interface INewAdapter<T>
{
    List<T> getData();

    /**
     * @param t
     *            list中的一条数据
     * @return 强烈建议返回string, int, bool类似的基础对象做type
     */
    Object getItemType(T t);

    T getItem(int position);

    /**
     * 当缓存中无法得到所需item时才会调用
     * 
     * @param type
     *            通过{@link #getItemType(Object)}得到的type
     * @return 任意类型的 AdapterItem
     */
    NewAdapterItem<T> onCreateItem(Object type);
}
